perm filename ALS10[F8,ALS]1 blob sn#299858 filedate 1977-08-11 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	*      CHECKERS   REV  0.10
C00063 ENDMK
C⊗;
*      CHECKERS   REV  0.10
*     DATE 8/10/77  VERSION ALS
*
*Resident package addresses
JOYT   EQU     H'0C00'
SHCB   EQU     H'FDA'
WTLN   EQU     H'FDB'
DBNC   EQU     H'FDC'
INPF   EQU     H'FDD'  SET IT Tg 0 FOR FCS
LINE   EQU     H'FDE'
TXC    EQU     H'FE0'
CMRG   EQU     H'FE2'
UPI    EQU     H'FFA'
PUSH   EQU     H'4217'
POPS   EQU     H'422A'
UDAT   EQU     H'423E'
FCS    EQU     H'4316'
WAIT   EQU     H'4444'
WMS    EQU     H'4450'
TIR    EQU     H'45B9'
IJS    EQU     H'4670'
JOYI   EQU     H'4686'
*Misc. constants
TCMD   EQU     H'44'
BCMD   EQU     H'6D'
TCOL   EQU     H'80'   TEXT COLOR
ULIN   EQU     H'FF'
COM    EQU     H'8F7'
SLT    EQU     SKL
*
*RAM assignments
JOYK    EQU     H'0B23'   0 if JOY,  FF if  KEYBOARD
OBJ0    EQU     H'C30'
TREE    EQU     H'0E10'         Tree data (15 blocks of 16 bytes each)
BLCK    EQU     H'0E10'
WHT     EQU     H'0E20'
PLMD    EQU     H'0EC0'         Used for temp store of player's move info
PLMV    EQU     H'0ED0'         Overlay region used for player's moves
PLMF    EQU     H'0EE0'                 and move numbers
MOBS    EQU     H'0F00'         Mobility and DJ flags (14 bytes)
PLY0    EQU     H'0F0E'         Place for player's ply depth choice
COL0    EQU     H'0F0F'         Place for color choice (next after PLY0)
OBJ1    EQU     H'F10'  BOARD 2
*
*Scratch pad assignments
J      EQU     H'9'
HU     EQU     H'A'
HL     EQU     H'B'
PLOC    EQU     O'3'            LISU value for ACTIVE and PASSIVE
KLOC    EQU     O'4'            LISU value for KING's and special data
ELOC    EQU     O'5'            LISU value for EMPTY's area
ISA     EQU     O'30'           ISAR value for active area
ISP     EQU     O'34'           ISAR value for passive
ISK     EQU     O'40'           ISAR value for kings
ISE     EQU     O'51'           ISAR value for empty (with offset)
*Mimimum ply depths
PLYT    EQU     H'FE'           Ply depth for Robot Tom (stored as neg.)
PLYD    EQU     H'FD'           Ply depth for Robot Dick
PLYH    EQU     H'FC'           Ply depth for Robot Harry
*
       ORG     H'1000'
       DC      H'AA'
       DC      H'55'
       DC      H'00'   BACKGROUND COLOR
       DC      H'00'   BACKGROUND COLOR
       DC      H'00'   SPACES
       DC      H'00'   SPACES
       DC      H'3119' CH
       DC      H'0B31' EC
       DC      H'150B' KE
       DC      H'0921' RS
       DC      H'00'   -
       DC      H'00'   -
       DC      H'00'   -
       DC      H'00'   -
*
*      MAIN PROGRAM STARTS HERE
*
       LI      O'76'
       LR      IS,A
       LI      O'75'
       LR      S,A     SET STACK POINTER
*
*      SET INTERRUPT VECTOR
*
*      SET LINE INTERRUPT
*
        DI      DISABLE INTRPT
        LI      INHR:           Set INT vector in SMI
        OUTS    H'C'
        LI      INHR.
        OUTS    H'D'
        LIS     H'0'
        OUTS    H'E'             Disable SMI INT
*
       PI      QN1     WILL ASK QUES.#1
       PI      QN2
       PI      QN3
       PI      BRDI             Set up initial board
        PI      MEN             Put men on it
        DI                      Disable CPU interrupt
        DCI     CMRG            Reset INT bit in COM reg
        LR      Q,DC
        LM
        NI      H'F7'
        LR      DC,Q
        ST
        DCI     COM
        ST
       NOP
       NOP
       NOP
       NOP
OKPS    PI      JOYR            Read joystick
        BR      *               TEST LOOP FOR ABOVE
        PI      OKPI            Check if piece can move
        BZ      OKPS            Try again
OKMS    PI      JOYR            Read joystick a second time
        PI      OKMV            Check the move
        BR      *
        BZ      OKMS            Try again
*Code to move piece goes in here
*Then redo the board and men leaving cursor off
        LI      INHR:           Set INT vector in SMI
        OUTS    H'C'
        LI      INHR.
        OUTS    H'D'
        LI      ULIN            Set Y INT reg to FF
        DCI     H'8F0'
        ST
        LIS     H'08'           Set INT bit in COM reg
        DCI     CMRG
        LR      Q,DC
        OM
        LR      DC,Q
        ST
        DCI     COM
        ST
        LIS     1
        OUTS    H'E'            Enable SMI INT
        EI              Enable CPU INT
*Tree routine goes in here
        BR      *
*Subroutine to call MAP and thru it JOYI
JOYR    LR      K,P
        PI      PUSH
        LI      H'FF'           Wait for line FF
        DCI     WTLN
        ST
JOYL    PI      WAIT
        PI      UDAT
        PI      BORD            Regenerate board to wipe it clean
        PI      MEN             Put the men back on
        PI      MAP             Map joystick into board position and set cursor
        CLR                     Read push button
        OUTS    1
        INS     1
        NI      1
        BZ      JOYL            Loop until button is pushed
        PI      POPS
        PK
*The following may be useful but is not now used
       LI      H'7F'
       LR      0,A
LOP0   LI     H'7F'
       LR      1,A
LOP1   NOP
       DS      1
       BP      LOP1
       DS      0
       BP      LOP0
       NOP
       NOP
       NOP
       NOP
       BR       *
*********************************************************
*
*      FIRST QUES. WILL BE FOR
*      SKILL LEVLE SELECTION.
*      DEF. IS LOWEST LEVEL 'TOM'
*      PLY LEVEL STRORED IN LOC H'F0E'
*
*********************************************************
QN1    LR      K,P     SAVE RETURN 
       PI      PUSH    PUSH IT ON STACK
       PI      TINT    TEXT INIT
       LISU    O'2'
       LISL    O'4'
       LI      H'40'   H40=D64
       LR      S,A     SET REG24
       DCI     LINE
       LI      H'20'   LINE # 2 POS. 0
       ST
       DCI     SKL     SKILL LEVEL TABLE
       PI      WMS     WRITE MASSAGE
*
*      TEXT IS DISPLAYED ,LOOK FOR REPLY NOW
*
       PI      RKB     READ KEYBOARD
       CI      H'1F'   IS IT DICK?
       BNZ     QN12    No
       LI      PLYD
       BR      QN14
QN12   CI      H'19'   IS IT HARRY?
       BNZ     QN13    No, it must be Tom
       LI      PLYH
       BR      QN14
QN13   LI      PLYT
QN14   DCI     PLY0
       ST
       PI      POPS
       PK
***************************************?*****************************
*
*      QUESTION 2 ROUTINE    QN2
*
*********************************************************************
*
*
*      INPUT MODE KBD/JSTK/
*      PLY0,BIT7=0 JOYSTICK
*            BIT7=1 KEYBOARD
*
*
QN2    LR      K,P     SAVE RETURN ADDR
       PI      PUSH
       PI      TINT    INIT.TEXT
       LISU    O'2'
       LISL    O'4'    SET ISAR
       LI      H'30'   #OF CHARS.
       LR      S,A     PUT IT IN '24'
       DCI     LINE
       LI      H'30'   LINE 3 POS.0
       ST
       DCI     INJK    TEXT TABLE ADDR.
       PI      WMS
       PI      RKB     READ KEYBOARD
       CI      H'15'   IS IT K?
       DCI     JOYK
       LIS     H'F'    F if keyboard
       BZ      INJ     It is K
       PI      IJS     Init joystick
       DCI     JOYK
       CLR             0 if joystick
INJ    ST
       PI      POPS
       PK              RETURN
*
*      END OF QUEST 2
*
********************************************************************
*
*      QUESTION 3 ROUTINE   QN3
*      QUEST # 3
*      YOU MOVE FIRST?
*      Y/N (H)=E10 Y, (H) =E20 N
*
********************************************************************
*
QN3    LR      K,P     SAVE RET. ADDR
       PI      PUSH
       PI      TINT    TXT INIT
       LISU    O'2'
       LISL    O'4'
       LI      H'1A'   H1A=D   CHARS.
       LR      S,A     PUT IT IN 24
       DCI     LINE
       LI      H'30'
       ST
       DCI     YMF     
       PI      WMS
       PI      RKB     GET ANSWER FROM KBD
       CI      H'2B'   IS IT 'N'?
       BZ      QN31    ITS N
       DCI     BLCK    DEF. BLACK
QN32   LR      H,DC    PUT IT IN H
       PI      POPS
       PK
QN31   DCI     WHT
* A DUMMY LINE TO FIX AN ASSEMBLY ERROR
       BR      QN32
*
*      END OF QUEST 3
*
***************************************************************
*
*      TINT TEXT INITIALIZATION
*
************************************************************
TINT   LR      K,P     SAVE RETURN
       PI      PUSH
       PI      RST     RESET UM1 REGS.
TNT1   DCI     H'8FB'
       LIS     H'8'
       XM      
       BNZ     TNT1
       DCI     CMRG    PROG COPY OF COM REG.
       LI      TCMD     DISPLAY COMMAND
       ST
       DCI     H'C18'
       CLR
       ST
       DCI     WTLN
       LI      ULIN    WAIT LINE
       ST
       DCI     TXC     TEXTCOLOR
       LI      TCOL
       ST
       PI      TIR     CALL TEXT INIT
       PI      POPS
       PK
*
**********************************************************
*
*      RST RESETS UM1 REGS.
*
**********************************************************
RST    LR      K,P     CLR R/W REGS.
       LI      H'80'
       LR      0,A
       LI      H'FF'
       DCI     H'800'
RST1   ST
       DS      0
       BNZ     RST1
       DCI     H'8F0'  CLR WRITE ONLY REGS
       LIS     H'8'
       LR      0,A
       CLR
RST2   ST
       DS      0
       BNZ     RST2
       PK
*
**************************************************************
*
*      KEYBORD READ
*
**************************************************************
RKB    LR      K,P
       PI      PUSH
       CLR
       DCI     INPF    CLEAR FLAG
       ST
       DCI     DBNC
       ST
       DCI     SHCB    CLER    SHIFT CONTROL
       ST
       DCI     CMRG
       LI      TCMD
       ST
       LISU    O'2'
       LISL    O'4'
       LI      H'C0'   WAIT TIME FOR FCS
       LR      S,A     PUT IT IN '24'
RKB1   PI      FCS     GET CHAR.
       BZ      RKB1    WAIT FOR ANY KEY
       LR      A,8     RETURN CHAR IN AC
       PI      POPS
       PK
*
************************************************************************
*
*      BOARD IMAGE ROUTINE
*
******************************************
*
BRDI   LR      K,P     SAVE RETURN
       NOP
       NOP
       NOP
       PI      PUSH
       PI      RST     RESET UM1 REG
       PI      BORD    GENERATE BOARD
       PI      SURP    SET UM1 REGS AND POINTERS
*
*Put in initial pieces both in SC and in blocks 0 or 1
        LISU    PLOC
        LISL    H'0'
        LI      H'FF'           Full double row of pieces
        LR      I,A             First byte of ACTIVE
        LI      H'F0'           1 row only
        LR      I,A             Second byte of active
        CLR 
        LR      I,A             Part of board with no active pieces
        LR      I,A             Part of board with no active pieces
        LR      I,A             Part of board with no passive pieces
        LR      I,A             Part of board with no passive pieces
        LI      H'F'            1 row only (in second half of byte)
        LR      I,A             byte of PASSIVE
        LI      H'FF'           Full double row of pieces
        LR      I,A             Last byte with Passive pieces
        LISU    KLOC
        LISL    0
        CLR
        LR      I,A             4 king bytes next (all empty)
        LR      I,A
        LR      I,A
        LR      I,A
        LI      H'F0'           The 4 bits for pieces that can move RF
        LR      I,A             The MOVE byte
        LIS     H'4'            BYTE # 1 RF normal move with no piece debit
        LR      I,A             
        LI      H'80'           Set score at -128 (lose, unless move is found)
        LR      I,A
        CLR                     With position advantage of 0
        LR      I,A
*       LR      DC,H            This was set earlier
*       PI      SCRD            Store pieces in correct RAM pos.
*       LR      DC,H
        CLR                     Should put black at bottom
        COM                     Should put red at bottom
        DCI     COL0
        ST
        PI      MEN
* A DUMMY LINE TO FIX AN ASSEMBLY ERROR
        PI      POPS
        PK
* Code to read the internal representation of the board and to put the
* required pieces into the board image.
*
MEN     LISU    O'3'            Start with pieces
        LIS     H'1'            1 for red pieces (shown first always)
        LR      4,A             To specify piece color (1 red, 0 black, -1 king)
        XDC
        DCI     COL0
        LM
        XDC
        LR      7,A
        LR      A,11
        SR      4
        AI      H'FF'
        LR      A,7
        BZ      *+2
        COM
        LR      7,A
        NS      7               Set status
        LISL    O'7'            Decrement if black is active and shift right
        BZ      MEN1            Black is active (Appears at bottom of screen)
        LISL    O'0'            Red is active, increment and shift left
MEN1    LIS     H'3'
        LR      1,A             To count bytes
MEN2    LIS     H'7'
        LR      2,A             To count bits
        DCI     TAB1            STARTING ADDRESS FOR BYTE LOCATION
        LR      A,1             This byte number
        SL      1               Locations occupy 2 bytes each
        ADC
        LM                      Get the location
        LR      QU,A            and save it in Q
        LM
        LR      QL,A
        LR      A,7
        NS      7
        BZ      MEN5            Black is active
        LR      A,I             Increment if red is active
        BR      MEN4
MEN0ε@@A→H@@@@AαXf4∀@@@@@@AM_@@@@@b@@@@@@@@@@@AC9HAgQ%MhAY∃Mh~∃5≤h@@A⊂∩∩↓↓↓↓α↓M2∧hQ↓↓↓α↓↓↓αtI↓↓↓α↓α!≥C↓≥↓↓α↓↓↓↓α↓↓↓#&{;∃β&C'Mβ>eβ≠␈⊃βOgn+SKebα

β>{W3⊃π;?K-Hh)↓↓α↓↓↓↓∧∩i↓↓α↓↓α6,qd4)α↓↓↓↓α↓α
Iα↓↓↓↓∧j⊗0∪↓Q$l,f↓(∧∧λ∪∀D∧λλλ∧λ+⊃λ∧∧λλλ∧∧λλλ∧∧⊃→8n,;9;ND~9H-_8zd
<h_,>~=Y!QHλλ∧∧λλλλ*Hλλ∧∧λ∪1)fc"S(YMHλ∧∧∪∀H∧∧λλλλ∃c"D∧λλλ∧∧λ∀tD∧λλλ∧ε(λλ∧∧λλλ∧∧λλλ∧∧_;Y∧∞z~9ND≤Z9m∞β"S(YMhλ∧∧∪∀H∧∧λλλε5⊂#"D∧λλλ∧∧λ∪R$∧λλλ∧		l)aQHλλ∧∧λλλλ+Hλλ∧∧λ∪1)g#"S(YNλλ∧∧⊃⊂r$∧λλλ
H0LH∧∧λλλ∧∧λλλ∧
Y;_.M=Y+-Mxx=
≥{\k-|K<|.\<Y<d∞_8[Q"Hλ∧∧λλλ∧	∀Hλ∧∧λλ⊂%FHλλ∧∧λλλ∧∧λλλ
M~<h∞>=8<LQ"Hλ∧∧λλλ∧λ1⊂c!$λλλ∧∧λλ∪	Tλλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λ⊃y.D≤|=,≡Y(→
≡|≠_,<;9;NA"Hλ∧∧λλλ∧	∀Hλ∧∧λλ⊃λ5∀(λ∧∧λλλ∧∧λλλ
,8x;
D≥~→$
≠xx.M;{Hm|H≥
(~;N∞=λ_O≡→#"D∧λλλ∧∧λ⊂1λ4λλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧∃~~.4~<h∞M→(≤n≡8<Y$∞≠|z.M;{C!$λλλ∧∧λλ∪
$λλλ∧∧⊂+
∧∧λλλ∧∧λλλ∧∧λ∩9]]~9O∀≥≡<T≠yH∞
98y!QHλλ∧∧λλλ	jhλλ∧∧λ
β!$λλλ∧∧λλ⊂ITλλλ∧∧∀∃5	4λλλ∧∧λλλ∧∧λ∀α7H8:z⊂→7{w⊂_P5tw→FE⊂⊂λ⊂⊂⊂⊂λ&$iPλ⊂⊂⊂$	Z∪P⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂∀92x0\e for a piece
        LR      5,A             P	<AG←k9hAYS9Kf~∀@@@@@A→∩@@@@↓⊂Nd`≤@@@@@@@@A'WS@Ahβ#*β≠'K>Bβ"
M∩v/4¬β"S¬⊃PRα∧∧ααα∧λ∀$_Q$ααα∧∧αα¬λH0hR∧∧ααα∧∧∧$≤∀∧αααλ)D]α∧∧ααα∧∧ααα∧λ⊗w&≤=↔ε∂LTε
ε-L⊗≡Z∞
⊗.≡QQ"αα∧∧αααλ+"αα∧∧ᬬZIBαα∧∧ααα∧∧αα∧∀&f∞=4πεN\<RαG>L↔'/4&O"∞>FNfD
vZHQ$ααα∧∧αα∧H9∩αα∧∧¬∀,J∧ααα∧∧ααα∧∧α∧vuDεO">h∀≤Y9∧∞~98lQ"Hλ∧∧λλλ∧λTHλ∧∧λλ∀
Z∪β"J
5∩h∧∧λ∪∩*4λλλ∧	λlId∧λλλ∧∧λλλ∧∧∪{[∂∀h≠
≥Y<h`7y⊂0H1y7{[εE⊂⊂λ⊂⊂⊂⊂λ&)⊂⊂λ⊂⊂⊂~K FE⊂λ⊂⊂⊂⊂λ⊂&$iH⊂⊂⊂⊂∩∪\∪Pλ⊂⊂⊂⊂λ⊂⊂⊂⊂λ*7P9Ztx⊂_H64w2CE⊂⊂⊂λ⊂⊂⊂⊂⊂b!FEλ⊂⊂⊂⊂λ⊂⊂,"⊂FE⊂⊂λ⊂⊂⊂⊂λ"!dPλ⊂⊂⊂%Rg#FE∀*j&⊂λ⊂⊂&&H⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂(:zλ67wxβE⊂⊂⊂λ⊂⊂⊂⊂⊗"!FEλ⊂⊂⊂⊂λ⊂⊂)jβE⊂⊂⊂λ⊂⊂⊂⊂∪$iP⊂λ⊂⊂$∪M↓'            To next line on screen (less increme↓]hR~(@@@@@@Aβ⊃ε~∀@@@@@A1	ε4∀@@@@@@A⊃&@@@@@j~(@@@@@@A¬@@@@@A!+)0@@@@@@@@@A→←=`~∃≠∃≤r@@A	&@@@@@H~∀@@@@@@↓∧α5↓α↓↓↓αl)E@4R↓↓↓↓α↓↓α J$ααα∧∧∧
cqQ"αα∧∧ααα	j2αα∧∧αβ8Q$ααα∧∧αα∧+$ααα∧∧∧l,f↓H∧∧λλλ∧∧λλλ∧λ[_8m4_8⎇
≡Y(_l≡y#"D∧λλλ∧∧λ⊂TD∧λλλ∧	13Ld∧λλλ∧∧λλλ∧∧∀Y9∧8⎇~.l(_x.<#"S(V,λλ∧∧⊂∀h∧∧λλλε⊃"Hλ∧∧λλλ∧λTλλ∧∧λλ∪(YLHλ∧∧λλλ∧∧λλλλm|H≥
(≠Y/∞λ~;N∞=λ_O≡→#"D∧λλλ∧∧λ∪∀D∧λλλ∧λ+
β!$λλλ∧∧λλ∪J4λλλ∧∧
β"D∧λλλ∧∧λ⊂S$∧λλλ∧λQ⊃6∧∧λλλ∧∧λλλ∧∧⊃>~.D_\[mT_[x. 2⊂97]:4w2CE⊂⊂⊂λ⊂⊂⊂⊂⊃)P⊂⊂λ⊂⊂~εB⊂⊂⊂⊂λ⊂⊂⊂!∀⊂⊂⊂⊂λ⊂&bgP⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂#wH95zw→⊂0spZw⊂37\⊂160XuP84YqryFB⊂⊂⊂⊂λ⊂⊂⊂&∩ijP⊂λ⊂$∪Z	P⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂#r]⊂9rzλ37xα kings
        LR      A,7
        NS      7
        LISL    H'3'            Decrementing case
        BZ      MEN1
        LISL    H'0'            Incrementing case
        BR      MEN1
BDEX    POP
*
***********************************************************************
*
*      BORD GENERATES BOARD IMAGE
*
************************************************************************
*
BORD   LR      K,P
       PI      PUSH
       LI      H'FF'
       LR      3,A     REG3=FF
       DCI     OBJ0    BRD1 START ADDRESS
       LIS     H'2'    FLAG FOR BORD
       LR      4,A     SET REG 4 = 2
       LIS     H'6'
BRD4   LR      0,A     REG0 = 6 ROWS
BRD3   LIS     H'A'
       LR      1,A     REG 1 = 10 LINE/ROW
BRD2   LIS     H'4'
       LR      2,A     REG2=SQ PAIRS/ROW
BRD1   LR      A,3
       ST              STORE IN BRD
       COM
       ST              NEXT IS COMPL. OF FIRST
       DS      2
       BNZ     BRD1    MORE FOR THIS ROW
       DS      1       NO, ALL LINE DONE
       BNZ     BRD2
       LR      A,3     DONE A TIMES YET
       COM
       LR      3,A
       DS      0       DEC ROW COUNT
       BNZ     BRD3    ALL ROWS DONE?
       DS      4
       BZ      BRD5    BOTH OBJECTS DONE?
       DCI     OBJ1    NO,GET BORD2 ADDRS.
       LIS     H'2'
       BR      BRD4    REG0=2
BRD5   PI      POPS
       PK
***********************************************************************
*
*      SURP SETS UM1 REGS & PTRS
*
***********************************************************************
SURP   LR      K,P
       PI      PUSH
       DCI     H'800'  UM1     REG START
       XDC             TUCK IT AWAY
       DCI     INIT    INIT TABLE POINTER
       LIS     H'6'
       LR      0,A
SRP1   LM              READ INIT TABLE
       XDC
       ST              PUT  IN UM1
       XDC             PT. BACK TO INIT
       LM              READ TABLE
       XDC
       ST
       DS      0       REG 0 = COUNTER 6
       BZ      SRP2
       LIS     H'E'
       ADC
       XDC
       BR      SRP1    CONTINUE
SRP2   LI      H'1E'   DO LAST TWO ENTRIES
       ADC     
       XDC
       LM              GET IT FROM INIT TAB
       XDC
       ST              PUT IT UM1
       XDC
       LM              GET IT FROM
       XDC
       ST
*
*      SET UPI PTRS
*
       DCI     UDIT
       LR      Q,DC
       DCI     UPI
       LIS     H'2'
       ST
       ST
       LR      A,QU
       ST
       LR      A,QL
       ST              ODD
       LR      A,QU
       ST
       LR      A,QL
       ST
       PI      POPS
       PK
*
* Subroutine to move data from RAM to S O'30' thru O'47' with the data for
* S O'30' thru O'43' coming from the current block.  Data for O '44' thru
* O'47' is from the previous block, with some items deleted.
*
RASC    LR      K,P             Save return address
        LISU    PLOC            SC buffer with Active and Passive
        LISL    0
        LIS     H'8'
        LR      0,A
        PI      RASL
        LISU    KLOC            SC buffer with Kings 
        LISL    0
        LIS     H'4'
        LR      0,A
        PI      RASL
        LI      H'F1'           Rest of data from earlier block
        ADC
        CLR                     Zero the MOVE byte
        LR      I,A
        LM
        NI      H'E0'           Save Piece debit only
        LR      I,A
        LM
        LR      I,A             Keep both SCORE bytes
        LM
        LR      I,A
        PK
*
RASL    LM
        LR      I,A
        DS      0
        BNZ     RASL
        POP
*
*Subroutine to move 16 bytes from SC O'30' thru O'47' to RAM direct.
SCRD    LR      K,P
        LISU    PLOC
        LISL    0
        LIS     H'8'
        LR      0,A
        PI      SCRL
        LISU    KLOBα~∀@@@@@A→∪'0@@@@@~∀@@@@@@↓→∪&@@@A⊂≤pN~∀@@@@@A→$@@@@`Yα~(@@@@@@A!$@@@@A'π%0~∀@@@@@@↓!⊗~∀(~∀U'UEe←kQS]JAQ↑A[←YJ@bl↓EsiKLAMe←4A'εA<Nf`N↓iQe`*α8
;Ftrπ ≠h∀H→+λ≤L↑Y<\m≥&Hα8X>↓2@nce in 4
        LIS     H'9'            Nee↓H@pA
CiCO=dβ'↔~↓_ε␈$∞FF*↓~,`32y2@nce
        LR      0,A
@@@@@@A1$@@@@AαXP~∃≠β@f@@@↓	&@@@@@`4∀@@@@@@A¬∩@@@@A⊂O→λH
↓α↓↓↓↓α↓↓↓α≡αV∩β1Q"αα∧∧αααλ*ααα∧∧α∧l~ε0hR∧∧ααα∧∧∧e∩∧∧αααλ∃C`"Hλ∧∧λλλ∧	∀Hλ∧∧λλ
¬H(λλ∧∧λλλ∧∧λλλλ@4s30¬r↓K]G∀ASP≠&y↓Q1π∪π;∨*↓AβSG∪U↓\hQ↓↓↓α↓↓↓α≤z08λ$∧ααα∧∧α∧Lh1PRα∧∧ααα∧λ∃~α∧∧ααβ1Q"αα∧∧ααα	→d⊂⊃"Hλ∧∧λλλ∧	∀Hλ∧∧λλ  P⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂βormalized X value
        LR      A,4
@@@@@@A¬&@@@@@f~(@@@@@@A∪9∧∧4)α↓↓↓↓α↓αNIα↓↓↓↓βλ4)↓α↓↓↓↓αα2I↓α↓↓↓↓%D
α∧∧ααα∧∧ααα∧	f␈⊗\≥FOV\D¬Jπl≥G.(Q$ααα∧∧αα¬:H∧∧λλλε⊃"Hλ∧∧λλλ∧	∀Hλ∧∧λλ
¬H(λλ∧∧λλλ∧∧λλλ
M→(_O≡→(≠N]8Y<D
→9]∧
;H
↓QHλλ∧∧λλλ	JHλλ∧∧λ⊂+ε⊃"Hλ∧∧λλλ∧
tHλ∧∧λλ!QHλλ∧∧λλλ	→Pc"D∧λλλ∧∧λ∪∀D∧λλλ∧εk⊂#!$λλλ∧∧λλ∪	~hλλ∧∧∩	n∧q"Hλ∧∧λλλ∧λTHλ∧∧λλ∪(~
#"IX4
λ∧∧λ∀tD∧λλλ∧ε#"S(~
(λ∧∧⊂∀h∧∧λλλε1"Hλ∧∧λλλ∧λSVH∧∧λλ∪(~
β"D∧λλλ∧∧λ∪∀D∧λλλ∧λ+#!$λλλ∧∧λλ∪I∀λλλ∧∧∩	l$q"Hλ∧∧λλλ∧λSVH∧∧λλ∪(~
C"D∧λλλ∧∧λ∪∀D∧λλλ∧λ+c!$λλλ∧∧λλ∀j$λλλ∧∧
β"D∧λλλ∧∧λ∪∀D∧λλλ∧εk⊂#!)04
D∧λλ∪Izλλλ∧∧λλλ∧∧λλλ∧∧λλλ∧∧λ⊂↑.L(≥z.Mλ_Z.D≠{H
L9]λ
≥Hc!$λλλ∧∧λλ∪
$λλλ∧∧⊂+!QHλλ∧∧λλλ
:Hλλ∧∧λ#!$λλλ∧∧λλ∪
$λλλ∧∧+⊂!QHλλ∧∧λλλ	JHλλ∧∧λ⊂+ε!"Hλ∧∧λλλ∧	R(λ∧∧λλ∩∧v)c"D∧λλλ∧∧λ⊂VD∧λλλ∧	04
aQHλλ∧∧λλλ	JHλλ∧∧λ⊂+ε⊃"Hλ∧∧λλλ∧λ2(λ∧∧λλ∩∧v	c"D∧λλλ∧∧λ∪∀D∧λλλ∧ε+⊂(∧∧λλλ∧∧λλλ∧∧∃~~.4~<h
m⎇h≥
(≠yLny=λ
≥H≥~T_↑=Q"S0*εhλλ∧	Stβ!$λλλ∧∧λλ⊃λ9(λλ∧∧∃⊂0F⊃"Hλ∧∧λλλ∧	∀Hλ∧∧λλ⊂%Fβ"H∧∧λλλ∧∧∀sλ∧∧λλλε⊃"Hλ∧∧λλλ∧λ1⊂c!$λλλ∧∧λλ∪	Q"Hλ∧∧λλλ∧	∀Hλ∧∧λλ∀*U⊂#"D∧λλλ∧∧λ∪∪!QHλλ∧∧λλλ	JHλλ∧∧λ∀3¬H#"H∧∧λλλ∧∧∪∩4d∧λλλ	∧m	c!$λλλ∧∧λλ∪
$λλλ∧∧
+⊂!QHλλ∧∧λλλλHr(λ∧∧λ∃⊂(&C"H∧∧λλλ∧∧∪∀H∧∧λλλλ∃#"D∧λλλ∧∧λ⊂1λ1"Hλ∧∧λλλ∧	∪#"D∧λλλ∧∧λ∪∀D∧λλλ∧λ⊂k∀!QHλλ∧∧λλλλ_⊂c"D∧λλλ∧∧λ⊗⊃λ1"Hλ∧∧λλλ∧λ⊂r(∧∧λλ∀	y3C"J
5∀λ∧∧λ∪∪!QHλλ∧∧λλλλ⊂c"D∧λλλ∧∧λ∪s!QHλλ∧∧λλλ	JHλλ∧∧λλ⊃"Hλ∧∧λλλ∧	∩(λ∧∧λλ∩∧xQIc!$λλλ∧∧λλ⊂(Hc"H∧∧λλλ∧∧∪∀H∧∧λλλλ∃β"D∧λλλ∧∧λ∀u↓QHλλ∧∧λλλ	I4hλ∧∧λ∩	ftc"H∧∧λλλ∧∧⊂1⊂aQHλλ∧∧λλλλ⊂c"D∧λλλ∧∧λ⊃∀d∧λλλ∧ε#"H∧∧λλλ∧∧⊂Tλ∧∧λλλ

5∀β!$λλλ∧∧λλ∀	∀λλλ∧∧∀∪t
1"Hλ∧∧λλλ∧
∩c"E!"JTn\\[⎇.M;Y(∞Mh≤Y,N8y(∞,;Yy$;Yλ
≥]Y<ND~9H
l8y<n<<↑#!)04⊂$∧λλ∀j$λλλ∧∧#"D∧λλλ∧∧λ∀tD∧λλλ∧ε#"H∧∧λλλ∧∧∀tH∧∧λλλε⊃"Hλ∧∧λλλ∧	∀Hλ∧∧λλ¬H#"H∧∧λλλ∧∧∪∀H∧∧λλλλ∃
hλ∧∧λλλ∧∧λλλ∧λz→8m4_{{
}C"H∧∧λλλ∧∧∪Th∧∧λλλεq"Hλ∧∧λλλ∧λSVH∧∧λλ∪(~⊂Hλ∧∧λλλ∧∧λλλλMh≥y$
Y99∧∞≠h~-nY<]πq"Hλ∧∧λλλ∧	∀Hλ∧∧λλ⊂%Fβ"H∧∧λλλ∧∧⊂ss!QHλλ∧∧λλλλ→(λλ∧∧λ⊃	f&)c"IX4⊂H∧∧λ∀∪j↓"JC!%H⊂{lL(≥≠d∞Y<Z,o(≥~≡λ~;LM8x=β
k4 ∧∧αα∧	qHdc"H∧∧λλλ∧∧⊂SVD∧λλλ	`'g'FB⊂⊂⊂⊂λ⊂⊂⊂&∩P⊂⊂⊂λ⊂$∪XLSP⊂⊂λ⊂⊂⊂⊂λ⊂⊂ P∪!'⊂6[{2FE∪eg⊂⊂λ⊂⊂ iH⊂⊂⊂⊂λ~⊂⊂⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂ r2λ:he byte number
        LR      4,A             and `MCmJAQQJAG=[aYKQJAEsQJAS]→↑@~∀@@@@@A→∩@@@@↓⊂O
≤@@@@@@@@A¬CG,Ak`~(@@@@@@Aβ⊃ε~∃∨-≤d@@A→$@@@@A∧Xh~∀@@@@@Aπ~@@@@@@@@@@@@@@@@A∪fA%hAiQ∀AgC[∀}~∀@@@@@A¬4@@@@A=↔∨⊗@@@@@@@@@↓
←k]⊂B~∃∨-≤f@@A→~@@@@@@@@@@@@@@@@@↓∂↑Ai<Ahβ#*β;↔c"β↔;S/⊂hR∧∧ααα∧∧∧tJ∧∧ααα	∧t42qQ"αα∧∧αααλ+"αα∧∧α∧tyiphR∧∧ααα∧∧∧u~∧∧αααε1PRα∧∧ααα∧λ$uR∧∧αα∧y9c∩α∧∧ααα∧∧αααλ∀ε⊗OD
V∂&=W~ε↑&(h$∧ααα∧∧α∧≤T∧ααα∧∧ααα∧∧ααα∧∧ααα∧∧∧
ε=V∂α∞|↔JπMtεNvL←hR∧∧ααα∧∧∧∃∩∧∧ααα	y4s~∧∧ααα∧∧ααα∧↓PTtyirαα∧	d⎇Q%%>*∞⎇⊗fb
mw:ε≡f*πMtπ≡N⎇l⊗bπM↔"εTεF∂4∞εN≡<\Bε
∞
⊗.≡T∞FF∂D6∞r
]w6*.W h%-↔"ε<≥bεv?↓λ
]⎇Y(∞Mh≥~T≤|=,≡Y(_m
|y;D;Yλ∞M_=λ∞M→(≤
L>9<D
<h≥
t≥≤↓<H0spt[εE'eSeP⊂⊂λ"!dPλ⊂⊂⊂*∀"bP⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂∪7{P3Yz⊂10XuP:7H:he Tree routine
        LR      H,DC
        LIS     H'C'
        ADC
        LR      A,3
        ST
        LM
        NI      H'D0'
        AS      4
        LR      4,A
        LI      H'FF'
        ADC
        LR      A,4
        ST
        LR      DC,H
*Now we signal rβkGG∃gfAC9HAae=GKKH↓i↑A[¬WJAi!JAaY¬sKdOLA[←m∀AC]H↓O↑A←8Ahβ<hQ+≠'v!βS#*β7π∂FK;∃∨~β7?[(h)(4R↓↓↓↓α↓α>J:↓↓↓↓∧A≥E↑≠↓≤4)R↓↓α&tBI↓αLrR⊗J∃*BQαD
:∩2-⊂4)(hQ)↓↓¬:&21¬~R>J*α⊗:ZM∩>:6,rQα
,2>J∃∧~ε22Lr≥αV$
P4)R↓↓αεt!αJ⊗≥">J∃∧∩⊗~>∀)α≡>Lr≥α
~-≤4RP4*&tBI↓↓∧bI↓↓α↓↓↓Yd	↓↓↓ααNεZ*αε∞hQ↓↓↓α↓↓α2∩↓↓↓↓αα¬2&_h)↓↓α↓↓↓αdJNU↓α↓α=≥284)↓α↓↓↓↓∧b&N1α↓↓α=;↓≤4)α↓↓↓↓αα2I↓α↓↓↓αJb¬↓↓α↓αNε4)α¬αLqαJ⊗;⊃P4)α↓↓↓↓αα2I↓α↓↓↓α
bFT4R↓↓↓↓α↓α2Iα↓↓↓↓∧I2¬↓α↓↓αN
2∃αF*α&9α∀*≥IThQ↓↓↓α↓↓α2∩↓↓↓↓αα¬2F`h)↓↓α↓↓↓αe⊃↓↓↓α↓α%2
↓↓↓↓¬~εZ∃¬
1α&rαJ⊗≥∪04)↓α↓↓↓↓∧bI↓↓α↓↓α¬dP4)↓α↓↓↓↓∧bI↓↓α↓↓α%d	↓↓↓ααNεY∧J9αJ,9I\4R↓↓↓↓α↓αb∩_h)↓↓α↓↓↓αe⊃↓↓↓α↓αE2$→↓↓↓∧:⊗Qα$_4)↓α↓↓↓↓∧"∞%↓α↓↓α!;α~	A:α≡⊗Q∧2J⊗∃¬∩ε5α"∩I8hQ↓↓↓α↓↓α2∩↓↓↓↓αα¬2F*↓↓↓α≤
Z∃α⎇∩&≡&t
1α∩≠λ4)↓α↓↓↓↓¬~P4)α↓↓↓↓αα2I↓α↓↓↓α
bF04R↓↓↓↓α↓αNPhQ↓↓↓α↓↓αb$_4)↓α↓↓↓↓∧bI↓↓α↓↓αEd"4)α↓↓↓↓ααb∩hQ↓↓↓α↓↓α2∩↓↓↓↓αα¬2.(h)↓↓α↓↓↓α≥ 4)↓α↓↓↓↓∧bI↓↓α↓↓α¬dZ04)α↓↓↓↓ααNQ↓α↓↓↓↓α↓↓↓↓α↓αNε4)α.0hQ↓↓↓α↓↓α2∩↓↓↓↓αα¬1Eα↓↓↓α-αB⊗I∧@4)↓α↓↓↓↓¬~Q↓↓α↓↓↓↓α↓↓↓↓ααNεZ*α&P4R↓↓↓↓α↓α2Iα↓↓↓↓∧	1EDhQ↓↓↓α↓↓αN"↓↓↓↓α↓↓↓↓α↓↓↓α≤
Z∃α@h)↓↓α↓↓↓αe⊃↓↓↓α↓α)28h)↓↓α↓↓↓αe⊃↓↓↓α↓α¬2Ph)↓↓α↓↓↓α≥!↓↓↓α↓↓↓↓α↓↓↓↓¬~εZ∃¬84)↓α↓↓↓↓∧bI↓↓α↓↓α-e4)↓α↓↓↓↓∧bI↓↓α↓↓α¬dZT4)α↓↓↓↓ααNQ↓α↓↓↓↓α↓↓↓↓α↓αNε4)αB∞(h)↓↓α↓↓↓αe⊃↓↓↓α↓α¬2\`4)↓α↓↓↓↓¬~Q↓↓α↓↓↓↓α↓↓↓↓ααNεZ*αB∞0hQ↓↓↓α↓↓α2∩↓↓↓↓αα¬2F*↓↓↓α≤
Z∃α$→Aα>∀J≡&:`4)↓α↓↓↓↓¬~P4)α↓↓↓↓αα2I↓α↓↓↓α
bF0Q$ααα∧∧α¬≥AQ"αα∧∧αα¬	∀ααα∧∧¬,$~Dααα
Z¬$*λI∃≥∧H≠⊂hR!Q"Rα∧
$-≥Iz$*∧→IB¬∀Xy∃≥$Z*0hR!Q"αα∧∧αα∧H9∩αα∧∧∧B;λh#α8Q$ααα∧∧α∧dQQ"αα∧∧αα∧J$ααα∧∧¬
*H∀αααλxU"∧H6⊂hR∧∧ααα∧	Dhh$∧ααα∧∧∧e∩∧∧ααα
→BdλQ$ααα∧∧α¬DH1PRα∧∧ααα	J"αα∧∧α∧$5J∩αα∧
$-≥Iz$*∧H6⊂hR∧∧ααα∧∧$_Q$ααα∧∧α∧d~4ααα∧	α;∩qQ"αα∧∧αα∧_H2αα∧∧ααα∧∧αααλ+∃∧
:4α<Zt
4
4XD∧
∀X⊃PRα∧∧ααα	IRαα∧∧ααα∧∧ααα∧λt-"	
PhR∧∧ααα∧	E∩α∧∧αα∧
UD
α∧∧¬∀-:Iu∀*	
PhR∧∧ααα∧	Dhh$∧ααα∧∧∧e∩∧∧ααα		Bd
∧∧α¬∀Z:D⎇∀T	∧`h$∧ααα∧∧∧dj∧∧ααα∧∧ααα∧∧α∧<ZD¬8h$∧ααα∧∧∧e∩∧∧ααα	%Dλh$∧ααα∧∧↓87
%PLR      W,J     RESTORE IT
       LM              GAXλ↓!εbA!≡~∀@@@@@↓→$@@@@A↔TYα~∀@@@@A→~~(@@@@@A→$@@@@↓∃_Yα4∀@@@@@A→H@@@@A Y⊗@@@AI')∨I
A!εD~∀@@@@@A1_~∀@@@@@↓→$@@@@A#TYα~∀@@@@A→~~(@@@@@A→$@@@@↓#_Yα4∀@@@@@A	
∩@@@A⊂O
λdN@@@@@@↓!(A)<A⊗~∀@@@@A→~@@@@@@@@@@A∂PA↔*~(@@@@@A→$@@@@↓↔*Yα4∀@@@@@A→4~∀@@@@@A1$@@@@A↔_1α@@@↓%')=%
A⊗4∀@@@@@A→H@@@@A	εYD@@@AI')∨I
A	ε@~∀T~(T@@A9∨.A%∃')⊂≡∀)α)2
b¬α~∀z5αN≥∩εR∞BαBε⊂hQ(4)α↓↓↓↓αα2&NTααα	ts2 c"H∧∧λλλ∧	∩4s∧∧λλ∪dvic"D∧λλλ∧∧∪∀H∧∧λλλλ∃⊃λλ∧∧λ⊃q*D∩C"D∧λλλ∧∧∪∀H∧∧λλλ	%⊂#"D∧λλλ∧∧∪∀H∧∧λλλλ∃⊃λλ∧λq5λ
→β"H∧∧λλλ∧	∀Hλ∧∧λλ∀)E⊂#"D∧λλλ∧∧∪∀H∧∧λλλλ∃⊃β"D∧λλλ∧∧∪∀H∧∧λλλ
~+⊂(∧∧λ∀Q*:∪tQ$
5#"D∧λλλ∧∧∪∀H∧∧λλλλ∃⊃λλ∧∧λ⊃q*D∩i`TεE⊂⊂λ⊂⊂⊂⊂∪)⊂⊂⊂λ⊂⊂$iK P⊂⊂λ)"ij∪i"P$T`iεEλ⊂⊂⊂⊂λ⊂&)⊂⊂⊂⊂⊂⊂V≠⊂⊂λ⊂⊂)"Tj'i"H FE⊂λ⊂⊂⊂⊂λ"dP⊂λ⊂⊂⊂⊂λ⊂⊂⊂⊂λ⊂$g*⊂"g PLE
       POP     
*   DISPALY YOU MOVE FIRST?
*             Y OR N
*
*
YMF    DC      H'0513' Y0
       DC      H'0300' U-
       DC      H'2913' MO
       DC      H'2F0B' VE
       DC      H'00'   -
       DC      H'1D'   F
       DC      H'0109' Hβ$4∀@@@@@A	@@@@A⊂NdD`nNAM(~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A NfjN@@}~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀@@@@@A	@@@@A⊂N`@N@@@4~∀@@@@@A⊃ε@@@@A⊂N@`N@@Z~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N`j`@NA2Z4∀@@@@@A	@@@@A⊂NbL`rNA=$~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A Ne∧N@A≤~(T@@A%≥∪(@↓	β)α4∃∪≥∪P@@A	@@@@A⊂Nf@N@@A=¬∀`A0]≡]%@~∀@@@@@A⊃ε@@@@A⊂ND`N@@↓∨¬∀b↓_]≡\↓% ~∀@@@@A	ε@@@@A NqεN@A∨¬(`A⊂]<]% W
∨→∨$4∀@@@@@A	@@@@A⊂Nq_N@@A=¬∀b@@A⊂]<]% ~(@@@@@A	ε@@@@↓⊂Nhp≤@@A∨	∀`A	∃→)αA`@ZZZ4∀@@@@@A	@@@@A⊂Nh`N@@A=¬∀bA⊃→)α↓0ZZZ4∃)2`@A	ε@@@@↓⊂Ngε≤@@A∨	∀`A	∃→)αAd@ZZZ4~∀@@@@@A⊃ε@@@@A⊂NDhN@A=¬∀bA⊃→)α↓2@ZZ4~∀@@@@@A⊃ε@@@@A⊂NAλN@@↓∨¬∀`50[π≡4∀@@@@@A	@@@@A⊂Na⊂N@@A=¬∀bA`[π≡~(@@@@@A	ε@@@@↓⊂Nhn≤@@A∨	∀`A25-β→+∀A_]≡9α~∀@@@@@↓	ε@@@@A⊂≥¬
N@A∨¬∀DA2[-¬→+
A0]≡]α4∀@@@@@A	@@@@A⊂N`@N@@A=¬∀`Ad[-β→U
A⊂\@@M0[=%	$4∀@@@@@A	@@@@A⊂N`DN@@A=¬∀bZ↓2[-β0A⊂]≡8I0[∨I	$~(UαA	U≠≠2A1∪≥
AQ≡A
∪`Aβ≤A¬''≠	→2AI%∨$~)+	∪(@A	ε@@@@↓⊂Nf`≤~∀@@@@@A⊃ε@@@@A⊂ND`N~∀@@@@A	ε@@@@A NqεN4∀@@@@@A	@@@@A⊂Nq_N~∀@@@@@A	ε@@@@A NgεN4∀@@@@@@A⊃ε@@@@A⊂NDhN~∃Qβ∧b@A	ε@@@@A Nab@NA¬3Q
@f~(@@@@@A	ε@@@@↓⊂Naλ\`NA¬e)
@d4∀@@@@@A	@@@@A⊂Na
λ`NA	3)
@D~∀@@@@@A⊃ε@@@@A⊂NAεf`N↓¬3)
`~∃)¬∧d@@↓	ε@@@@Aλ≤plN@A%→¬)∪-
↓'#+βI
A!∨M∪)∪∨8A)β¬1
~∀@@@@@↓	ε@@@@Aλ≤phN~(@@@@@A	ε@@@@↓λNpd≤~∀@@@@@A⊃ε@@@@AλN``N~∀@@@@A	ε@@@@A⊂N`nN4∀@@@@@A	@@@@AλN`TN~∀@@@@@↓	ε@@@@Aλ≤`fN~(@@@@@A	ε@@@@↓λN`b≤~∃↔∪9∞@@A⊃ε@@@@A∧N@b`bb@b`N@@@A↔%≥∞O&↓π%∨/8~∀@@@@@A⊃ε@@@@A∧N@`bbbD``N~(@@@@@A	ε@@@@↓∧N``@bb``@N~∃%∃	 @@↓	ε@@@@A∧≤``bbDb``N@@@AIλA!%π
~(@@@@@A	ε@@@@↓∧N`bDbbbb@N~∀@@@@@↓	ε@@@@A∧≤`bbbDbb`N4∀@@@@@A	@@@@A∧N`DbbbbD`N~∀@@@@A	ε@@@@AλN``bDbb``≤~∃¬→- @@A⊃ε@@@@A∧N@`bbbD``N@@@A¬1βπ⊗AA∪π
4∀@@@@@A	@@@@A∧N`D````D`N~∀@@@@A	ε@@@@AλN`b`@``b`≤~∀@@@@@A⊃ε@@@@A∧N@b```@b`N~(@@@@@A	ε@@@@↓∧N``Dbbb`@N~∃!=∪≤@@↓	ε@@@@A∧≤````Db``N4∀@@@@@A	@@@@A∧N`@```bD`N~∀@@@@A	ε@@@@AλN```@``bb≤~∀@@@@@A⊃ε@@@@A∧N@````@`bN~(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TT~∀(~∀T@A'↔∪1_A→Y_A)∃1(A)¬¬→
~(T~∀T(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(TTTT(T~∃'-_@@@↓	ε@@@@A⊂≤fbbr≤Aπ⊂~(@@@@@A	ε@@@@↓⊂NbfDfNA∨<~∀@@@@@A⊃ε@@@@A⊂NHba∧N↓'
~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀@@@@@A	@@@@A⊂N`@N@@@4~∀@@@@@A⊃ε@@@@A⊂N@`N@@Z~∀@@@@@↓	ε@@@@A⊂≤bja∧≤A↔
~(@@@@@A	ε@@@@↓⊂N`j@`NA24~∀@@@@@A⊃ε@@@@A⊂N@`N@@Z~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N`nbLNA)≡4∀@@@@@A	@@@@A⊂Ndd``NA4Z~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀@@@@@A	@@@@A⊂N`@N@@@4~∀@@@@@A⊃ε@@@@A⊂N@`N@@Z~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N`n≤@@A(4∀@@@@@A	@@@@A⊂N`@N@@@4~∀@@@@@A⊃ε@@@@A⊂N@`N@@Z~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N``N@@Z~)	∪π⊗@A	ε@@@@↓⊂Nc@bNA	$~∀@@@@@A⊃ε@@@@A⊂NLbbjN↓π⊗~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀@@@@@A	@@@@A⊂N`@N@@@4~∀@@@@@A⊃ε@@@@A⊂N@`N@@Z~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀@@@@@A	@@@@A⊂Nc_N@@A⊂~∀@@@@@A⊃ε@@@@A⊂N@`N@@Z~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∃⊃β%d@@A	@@@@A⊂NbdbbNA!α~∀@@@@@↓	ε@@@@A⊂≤`r`r≤A%$~(@@@@@A	ε@@@@↓⊂N`j@`NA24~∀@@@@@A⊃ε@@@@A⊂N@`N@@Z~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀@@@@@A	@@@@A⊂N`@N@@@4~∀@@@@@A⊃ε@@@@A⊂NDrN@@↓⊂~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀@@@@@A	@@@@A⊂N`@N@@@4~∀T~(T@@@XhA¬3Q&A)¬¬→
A→∨$@~(T@@A
⊃∨∨'∀A'↔∪1_A→Y_~∀(@@@A%≥!+(↓≠∨	
↓∀←⊗~(T~∃∪9∃⊗@@↓	ε@@@@A⊂≤`be∧≤A∪≤~(@@@@@A	ε@@@@↓⊂Ndj@fNA!T~∀@@@@@A⊃ε@@@@A⊂N@n``N↓(Z~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀@@@@@A	@@@@A⊂NddbfNA5≡~∀@@@@@↓	ε@@@@A⊂≤ca∧≤A	
~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀@@@@@A	@@@@A⊂NfTN@@@|~∀@@@@@A⊃ε@@@@A⊂N@`N@@Z~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∃-¬%λ@A	ε@@@@A NbjaλNA↔
4∀@@@@@A	@@@@A⊂N`TeλNAe∧~∀@@@@@↓	ε@@@@A⊂≤bfbb≤A∨α~(@@@@@A	ε@@@@↓⊂N`rENA%⊂~∀@@@@@A⊃ε@@@@A⊂N@`N@@Z~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀@@@@@A	@@@@A⊂N`@N@@@4~∀@@@@@A⊃ε@@@@A⊂NDjN@@↓⊗~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂NbnDfNA∃<~∀@@@@@A⊃ε@@@@A⊂N@jdbN↓3&~∀@@@@A	ε@@@@A N`n`DNA)∩4∀@@@@@A	@@@@A⊂NfDbjNA
⊗~∀@@@@@↓	ε@@@@A⊂≤``N@@Z~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀@@@@@A	@@@@A⊂N`@N@@@4~∀@@@@@A⊃ε@@@@A⊂N@`N@@Z~∀@@@@@↓	ε@@@@A⊂≤bnN@A∀~∀@@@@A	ε@@@@A N``N@@Z~(@@@@@A	ε@@@@↓⊂N``≤@@@Z4∀T~∀(@@A9λA∨↓u∪≥!U(A≠∂⊃
A)β	→
@~(T@@@PpA¬3Q&~∀(~∀@@@@@A∃≥λ~∀